package com.legal.app.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.legal.app.domain.Lawyer;
import com.legal.app.domain.vo.LawyerHomeVO;
import com.legal.app.domain.vo.LawyerVO;
import com.legal.common.core.domain.AjaxResult;


/**
 * 律师Service接口
 * 
 * @author ALe
 * @date 2025-05-30
 */
public interface ILawyerService extends IService<Lawyer>
{
    /**
     * 查询律师
     * 
     * @param id 律师主键
     * @return 律师
     */
    public Lawyer selectLawyerById(Long id);

    /**
     * 查询律师列表
     * 
     * @param lawyer 律师
     * @return 律师集合
     */
    public List<Lawyer> selectLawyerList(Lawyer lawyer);

    /**
     * 新增律师
     * 
     * @param lawyer 律师
     * @return 结果
     */
    public int insertLawyer(Lawyer lawyer);

    /**
     * 修改律师
     * 
     * @param lawyer 律师
     * @return 结果
     */
    public int updateLawyer(Lawyer lawyer);

    /**
     * 批量删除律师
     * 
     * @param ids 需要删除的律师主键集合
     * @return 结果
     */
    public int deleteLawyerByIds(Long[] ids);

    /**
     * 删除律师信息
     * 
     * @param id 律师主键
     * @return 结果
     */
    public int deleteLawyerById(Long id);

    /**
     * 获取首页在线律师列表VO（分页）
     * @param pageSize 每页数量
     * @param pageNum 页码
     * @return 分页结果
     */
    AjaxResult getHomeLawyers(Integer pageSize, Integer pageNum);

    /**
     * 获取首页律师列表VO（分页）
     * @param vo 查询条件
     * @return 分页结果
     */
    AjaxResult queryLawyersByCondition(LawyerHomeVO vo);

    /**
     * 获取律师详情
     * @param lawyerId 律师ID
     * @return 律师详情VO
     */
    LawyerVO getLawyerDetail(Long lawyerId);
}
